package com.xszx.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 合同表
 * @TableName t_contract
 */
@TableName(value ="t_contract")
@Data
public class TContract implements Serializable {
    /**
     * 
     */
    @TableId
    private Integer id;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 所属项目
     */
    private String projectName;

    /**
     * 关联合同级别表字段
     */
    private Integer contractRankId;

    /**
     * 支付方向
     */
    private String directionPay;

    /**
     * 甲方联系方式
     */
    private String ownerContact;

    /**
     * 甲方名称
     */
    private String ownerName;

    /**
     * 甲方联系人
     */
    private String ownerLinkman;

    /**
     * 乙方联系方式
     */
    private String partyContact;

    /**
     * 乙方名称
     */
    private String partyName;

    /**
     * 乙方联系人
     */
    private String partyLinkman;

    /**
     * 税率
     */
    private String taxRate;

    /**
     * 含税金额
     */
    private Double taxIncluded;

    /**
     * 不含税金额
     */
    private Double notTaxIncluded;

    /**
     * 税额
     */
    private Double taxPrice;

    /**
     * 所属公司
     */
    private String companyName;

    /**
     * 编制人
     */
    private String aurhorizedName;

    /**
     * 编制日期
     */
    private Date aurhorizedDate;

    /**
     * 单据状态
     */
    private Integer contractState;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        TContract other = (TContract) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getContractName() == null ? other.getContractName() == null : this.getContractName().equals(other.getContractName()))
            && (this.getProjectName() == null ? other.getProjectName() == null : this.getProjectName().equals(other.getProjectName()))
            && (this.getContractRankId() == null ? other.getContractRankId() == null : this.getContractRankId().equals(other.getContractRankId()))
            && (this.getDirectionPay() == null ? other.getDirectionPay() == null : this.getDirectionPay().equals(other.getDirectionPay()))
            && (this.getOwnerContact() == null ? other.getOwnerContact() == null : this.getOwnerContact().equals(other.getOwnerContact()))
            && (this.getOwnerName() == null ? other.getOwnerName() == null : this.getOwnerName().equals(other.getOwnerName()))
            && (this.getOwnerLinkman() == null ? other.getOwnerLinkman() == null : this.getOwnerLinkman().equals(other.getOwnerLinkman()))
            && (this.getPartyContact() == null ? other.getPartyContact() == null : this.getPartyContact().equals(other.getPartyContact()))
            && (this.getPartyName() == null ? other.getPartyName() == null : this.getPartyName().equals(other.getPartyName()))
            && (this.getPartyLinkman() == null ? other.getPartyLinkman() == null : this.getPartyLinkman().equals(other.getPartyLinkman()))
            && (this.getTaxRate() == null ? other.getTaxRate() == null : this.getTaxRate().equals(other.getTaxRate()))
            && (this.getTaxIncluded() == null ? other.getTaxIncluded() == null : this.getTaxIncluded().equals(other.getTaxIncluded()))
            && (this.getNotTaxIncluded() == null ? other.getNotTaxIncluded() == null : this.getNotTaxIncluded().equals(other.getNotTaxIncluded()))
            && (this.getTaxPrice() == null ? other.getTaxPrice() == null : this.getTaxPrice().equals(other.getTaxPrice()))
            && (this.getCompanyName() == null ? other.getCompanyName() == null : this.getCompanyName().equals(other.getCompanyName()))
            && (this.getAurhorizedName() == null ? other.getAurhorizedName() == null : this.getAurhorizedName().equals(other.getAurhorizedName()))
            && (this.getAurhorizedDate() == null ? other.getAurhorizedDate() == null : this.getAurhorizedDate().equals(other.getAurhorizedDate()))
            && (this.getContractState() == null ? other.getContractState() == null : this.getContractState().equals(other.getContractState()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getContractName() == null) ? 0 : getContractName().hashCode());
        result = prime * result + ((getProjectName() == null) ? 0 : getProjectName().hashCode());
        result = prime * result + ((getContractRankId() == null) ? 0 : getContractRankId().hashCode());
        result = prime * result + ((getDirectionPay() == null) ? 0 : getDirectionPay().hashCode());
        result = prime * result + ((getOwnerContact() == null) ? 0 : getOwnerContact().hashCode());
        result = prime * result + ((getOwnerName() == null) ? 0 : getOwnerName().hashCode());
        result = prime * result + ((getOwnerLinkman() == null) ? 0 : getOwnerLinkman().hashCode());
        result = prime * result + ((getPartyContact() == null) ? 0 : getPartyContact().hashCode());
        result = prime * result + ((getPartyName() == null) ? 0 : getPartyName().hashCode());
        result = prime * result + ((getPartyLinkman() == null) ? 0 : getPartyLinkman().hashCode());
        result = prime * result + ((getTaxRate() == null) ? 0 : getTaxRate().hashCode());
        result = prime * result + ((getTaxIncluded() == null) ? 0 : getTaxIncluded().hashCode());
        result = prime * result + ((getNotTaxIncluded() == null) ? 0 : getNotTaxIncluded().hashCode());
        result = prime * result + ((getTaxPrice() == null) ? 0 : getTaxPrice().hashCode());
        result = prime * result + ((getCompanyName() == null) ? 0 : getCompanyName().hashCode());
        result = prime * result + ((getAurhorizedName() == null) ? 0 : getAurhorizedName().hashCode());
        result = prime * result + ((getAurhorizedDate() == null) ? 0 : getAurhorizedDate().hashCode());
        result = prime * result + ((getContractState() == null) ? 0 : getContractState().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", contractName=").append(contractName);
        sb.append(", projectName=").append(projectName);
        sb.append(", contractRankId=").append(contractRankId);
        sb.append(", directionPay=").append(directionPay);
        sb.append(", ownerContact=").append(ownerContact);
        sb.append(", ownerName=").append(ownerName);
        sb.append(", ownerLinkman=").append(ownerLinkman);
        sb.append(", partyContact=").append(partyContact);
        sb.append(", partyName=").append(partyName);
        sb.append(", partyLinkman=").append(partyLinkman);
        sb.append(", taxRate=").append(taxRate);
        sb.append(", taxIncluded=").append(taxIncluded);
        sb.append(", notTaxIncluded=").append(notTaxIncluded);
        sb.append(", taxPrice=").append(taxPrice);
        sb.append(", companyName=").append(companyName);
        sb.append(", aurhorizedName=").append(aurhorizedName);
        sb.append(", aurhorizedDate=").append(aurhorizedDate);
        sb.append(", contractState=").append(contractState);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}